Run getComputedStyle in the same context as the target element #678
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I work on an embedded JavaScript app. We inject an iframe into the page that we're embedded on and the JavaScript is inserted and run in the context of that iframe so we can run in isolation from the parent page.
This works well, but there's an issue in Firefox, specifically with
getComputedStyle()
, where, if you try to run this method in the context of an iframe, it always returnsnull
.I'm looking to introduce Popper into my embedded app, but because of the bug above, Popper can't position my elements because
getComputedStyle
returnsnull
. Unfortunately, this issue has been open for almost a decade and is unlikely to be fixed any time soon.Because the elements themselves live on the parent page, we can work around this by getting the window of the document that the element is embedded in, and run
getComputedStyle()
in that context.This PR solves our specific use case, and should work exactly as before for any other supported browser.
Let me know what you think.